package io.renren.modules.pms.controller;

import java.util.Map;

import io.renren.modules.pms.entity.PmsProductBrandEntity;
import io.renren.modules.pms.service.PmsProductBrandService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import io.renren.common.utils.PageUtils;
import io.renren.common.utils.R;



/**
 * 品牌表
 *
 * @author LuoShun
 * @email lori6166@163.com
 * @date 2021-12-23 15:15:38
 */
@Api(tags  = "品牌管理")
@RestController
@RequestMapping("pms/brand")
public class PmsProductBrandController {
    @Autowired
    private PmsProductBrandService pmsProductBrandService;

    /**
     * 根据品牌名称分页获取品牌列表
     */
    @ApiOperation("根据品牌名称分页获取品牌列表")
    @GetMapping("/list")
    @RequiresPermissions("pms:brand:list")
    public R getList(@RequestParam Map<String, Object> params) {
        PageUtils page = pmsProductBrandService.queryPage(params);
        return R.ok().put("page",page);
    }


    /**
     * 根据id获取品牌
     */
    @ApiOperation("根据id获取品牌")
    @GetMapping("/{id}")
    @RequiresPermissions("pms:brand:info")
    public R info(@PathVariable("id") Long id){
		PmsProductBrandEntity brand = pmsProductBrandService.getById(id);
		return R.ok().put("data", brand);
    }

    /**
     * 新增品牌
     */
    @ApiOperation("新增品牌")
    @PostMapping("/save")
    @RequiresPermissions("pms:brand:save")
    public R save(@RequestBody io.renren.modules.pms.entity.PmsProductBrandEntity brand){
		pmsProductBrandService.save(brand);

        return R.ok();
    }

    /**
     * 修改品牌信息
     */
    @ApiOperation("修改品牌信息")
    @PostMapping("/update/{id}")
    @RequiresPermissions("pms:brand:update")
    public R update(@RequestBody io.renren.modules.pms.entity.PmsProductBrandEntity brand){
        Boolean success = pmsProductBrandService.updateById(brand);
        if (success) {return R.ok();} else {return R.error();}
    }

    /**
     * 删除品牌
     */
    @ApiOperation("删除品牌")
    @PostMapping("/delete/{id}")
    @RequiresPermissions("pms:brand:delete")
    public R delete(@PathVariable Long id){
		Boolean success = pmsProductBrandService.removeById(id);
        if (success) {return R.ok();} else {return R.error();}
    }

    /**
     * 是否品牌制造商
     */
    @ApiOperation("是否品牌制造商")
    @PostMapping("/update/factoryStatus")
    @RequiresPermissions("pms:brand:update:factoryStatus")
    public R updateFactoryStatus(@RequestBody PmsProductBrandEntity pmsProductBrandEntity){
        Long id = pmsProductBrandEntity.getId();
        Integer factoryStatus = pmsProductBrandEntity.getFactoryStatus();
        boolean success = pmsProductBrandService.updateFactoryStatusById(id,factoryStatus);
        if (success) {return R.ok();} else {return R.error();}
    }

    /**
     * 修改显示状态
     */
    @ApiOperation("修改显示状态")
    @PostMapping("/update/showStatus")
    @RequiresPermissions("pms:brand:update:showStatus")
    public R updateShowStatus(@RequestBody PmsProductBrandEntity pmsProductBrandEntity){
        Long id = pmsProductBrandEntity.getId();
        Integer showStatus = pmsProductBrandEntity.getShowStatus();
        boolean success = pmsProductBrandService.updateShowStatusById(id,showStatus);
        if (success) {return R.ok();} else {return R.error();}
    }
}
